package template;

public class TemplatePattern {

    public static void main(String[] args) {
        TeaWithHook tea = new TeaWithHook();
        tea.prepareRecipe();

        System.out.println("----------");

        CoffeeWithHook coffee = new CoffeeWithHook();
        coffee.prepareRecipe();

        // jdk中的mergeSort可看作一个模板方法，需要排序的类必须实现Comparable接口的compareTo方法
        // JFrame中的paint方法，Applet中的init、start、stop、destroy方法都是"钩子"
        // InputStream中的read(byte b[], int off, int len)也是一个模板方法，它调用了一个无参的抽象方法read()，这一步骤被延迟到子类实现
    }

}
